package com.wlc.thread.test;


import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
 * @author 王立朝 wanglichao@champion-credit.com
 * @description 文件查找多线程
 * @date 2021-07-14 15:05
 */
public class FileSearchThread extends Thread {

    /**
     * 要查找的文件
     */
    File file;
    /**
     * 关键字
     */

    String keyWord;

    public FileSearchThread(File file, String keyWord) {
        this.file = file;
        this.keyWord = keyWord;
    }

    @Override
    public void run() {
        String content = readFile(file, keyWord);
        if (content.contains(keyWord)) {
            System.out.printf("查找到了关键字%s，在%s 文件中，", keyWord, file);
            System.out.println(" ======");
        }
    }

    /**
     * 读取文件
     *
     * @return
     */
    public static String readFile(File file, String keyWord) {
        try (FileReader fileReader = new FileReader(file)) {
            char[] all = new char[(int) file.length()];
            fileReader.read(all);
            String content = new String(all);
            return content;
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}
